package com.campus.controller;

import com.campus.entity.ResultBody;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @Author: AlaskaBoo
 * @Date: 2023-03-21 07:35
 **/
@RestController
@RequestMapping("/api/triangle")
public class Triangle {
    @PostMapping("/{EdgeA}/{EdgeB}/{EdgeC}")
    public ResultBody attendance(@PathVariable("EdgeA") Float EdgeA, @PathVariable("EdgeB") Float EdgeB, @PathVariable("EdgeC") Float EdgeC) {
        boolean aBC = EdgeA * EdgeA + EdgeB * EdgeB == EdgeC * EdgeC;
        boolean aCB = EdgeA * EdgeA + EdgeC * EdgeC == EdgeB * EdgeB;
        boolean bCA = EdgeB * EdgeB + EdgeC * EdgeC == EdgeA * EdgeA;
        //满足输入均为正数
        if (EdgeA > 0 && EdgeB > 0 && EdgeC > 0) {
            //判断满足三角形
            if ((EdgeA + EdgeB > EdgeC) && (EdgeA + EdgeC > EdgeB) && (EdgeB + EdgeC > EdgeA)) {
                //三边相等是等边三角形
                if ((EdgeA.equals(EdgeB)) && (EdgeB.equals(EdgeC))) {
                    return ResultBody.ok().code(2000).message("您输入的是：等边三角形").describe("您输入的是：等边三角形");
                }
                //两边相等
                if ((EdgeA.equals(EdgeB)) || (EdgeB.equals(EdgeC) || (EdgeA).equals(EdgeC))) {
                    if (aCB || aBC || bCA) {
                        return ResultBody.ok().code(2000).message("您输入的是：等腰直角三角形").describe("您输入的是：等腰直角三角形");
                    }
                    return ResultBody.ok().code(2000).message("您输入的是：等腰三角形").describe("您输入的是：等腰三角形");
                }
                //直角三角形
                if (aCB || aBC || bCA) {
                    return ResultBody.ok().code(2000).message("您输入的是：直角三角形").describe("您输入的是：直角三角形");
                }
                //其他
                return ResultBody.ok().code(2000).message("您输入的是：一般三角形").describe("您输入的是：一般三角形");
            }
        }
        return ResultBody.error().code(5000).message("您的输入不满足三角形，请检查后重新输入！").describe("您的输入不满足三角形，请检查后重新输入！");
    }
}
